package com.example.dictdemo.common.enums;

import com.example.dictdemo.aspect.annotation.EnumDict;
import com.example.dictdemo.enhance.EnumDictMethodEnhance;
import com.example.dictdemo.model.vo.DictModel;
import java.util.ArrayList;
import java.util.List;
import lombok.Getter;

/**
 * sys用户类型枚举
 *
 * @author dlp
 * @date 2024/08/23
 */
@Getter
@EnumDict("SysUserType")
public enum SysUserTypeEnum implements EnumDictMethodEnhance {
    /**
     * 管理员。
     */
    TYPE_ADMIN("0","管理员"),
    /**
     * 系统操作员。
     */
    TYPE_SYSTEM ("1","系统操作员"),
    /**
     * 普通操作员。
     */
    TYPE_OPERATOR("2","普通操作员")
    ;

    private String key;

    private String title;

    SysUserTypeEnum(String key, String title) {
        this.key = key;
        this.title = title;
    }

    @Override
    public List<DictModel> getDictList() {
        List<DictModel> list = new ArrayList<>();
        for(SysUserTypeEnum e: SysUserTypeEnum.values()){
            DictModel dictModel = new DictModel();
            dictModel.setValue(e.getKey());
            dictModel.setText(e.getTitle());
            list.add(dictModel);
        }
        return list;
    }

    /**
     * 判断参数是否为当前常量字典的合法值。
     *
     * @param key 待验证的参数值。
     * @return 合法返回true，否则false。
     */
    @Override
    public boolean isValid(String key) {
        if (key==null){
            return false;
        }
        for (SysUserTypeEnum sysUserTypeEnum : SysUserTypeEnum.values()) {
            if (sysUserTypeEnum.getKey().equals(key)){
                return true;
            }
        }
        return false;
    }
}
